package com.galen.manual.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

@Data
@Schema(description = "任务详情")
public class TaskVO {

    @Schema(description = "任务ID")
    private Long id;

    @Schema(description = "任务编号")
    private String taskNumber;

    @Schema(description = "用户ID")
    private Long userId;

    @Schema(description = "用户姓名")
    private String userName;

    @Schema(description = "产品ID")
    private Long productId;

    @Schema(description = "产品名称")
    private String productName;

    @Schema(description = "单价")
    private BigDecimal unitPrice;

    @Schema(description = "领取数量")
    private Integer claimedQuantity;

    @Schema(description = "完成数量")
    private Integer completedQuantity;

    @Schema(description = "未完成数量")
    private Integer uncompletedQuantity;

    @Schema(description = "剩余配件说明")
    private String remainingMaterials;

    @Schema(description = "完成图片URL列表")
    private List<String> completionImageList;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "任务状态")
    private Integer status;

    @Schema(description = "任务状态名称")
    private String statusName;

    @Schema(description = "领取时间")
    private LocalDateTime claimedTime;

    @Schema(description = "提交时间")
    private LocalDateTime submittedTime;

    @Schema(description = "审核时间")
    private LocalDateTime reviewedTime;

    @Schema(description = "审核人ID")
    private Long reviewedBy;

    @Schema(description = "审核人姓名")
    private String reviewedByName;

    @Schema(description = "审核意见")
    private String reviewComment;

    @Schema(description = "回收时间")
    private LocalDateTime reclaimedTime;

    @Schema(description = "创建时间")
    private LocalDateTime createTime;

    @Schema(description = "更新时间")
    private LocalDateTime updateTime;

    @Schema(description = "预计结算金额")
    private BigDecimal estimatedAmount;
}